_____ _    _         _____  _____ _   _          _____   _____  
    / ____| |  | |  /\   |  __ \|_   _| \ | |   /\   / _ \ \ / / _ \ 
   | |  __| |  | | /  \  | |__) | | | |  \| |  /  \ | | | \ V / | | |
   | | |_ | |  | |/ /\ \ |  _  /  | | | . ` | / /\ \| | | |> <| | | |
   | |__| | |__| / ____ \| | \ \ _| |_| |\  |/ ____ \ |_| / . \ |_| |
    \_____|\____/_/    \_\_|  \_\_____|_| \_/_/    \_\___/_/ \_\___/ 
                                                                     
                    ./Guarina0x0
Titulo: TryHackMe - MindGames
Fecha: 20-07-2021
Descripcion: Enumeracion - BrainFuck - Capabilities

TryHackMe - MindGames Writeup

## Ping:

ping -c1 10.10.182.27

Mediante el comando ping vamos a trazar una ruta ICMP para ver si la maquina esta activa y ante que tipo de sistema operativo estamos

Podemos ver que la respuesta del ttl es 63 , el TTL en maquinas Linux es 64 y en maquinas Windows 128 , en este caso es 63 porque pasa por un nodo intermediario.

## Enumeracion :

Ahora vamos a proceder a ver que servicios tiene esta maquina abiertos para ello vamos a realizar una enumeracion de puertos:

Mediante el parametro --min-rate 5000 va a emitir paquetes no mas lento que 5000 paquetes por segundo

  • Puerto 22 SSH
  • Puerto 80 HTTP
  • Vamos a realizar un escaneo de puertos mas intensivo en busqueda de versiones de servicios y aplicando algunos scripts basicos de enumeracion de Nmap

    Como tenemos el puerto del servicio HTTP abierto , vamos a relizar una busqueda mediante WhatWeb en busca de gestores de contenido o que nos proporcione mayor informacion

    ## Enumeracion Web:

    Vamos abrir la pagina web y vamos a ir inspeccionandola , nos vamos a encontrar un campo donde nos permite ejecutar codigo en un lenguaje llamado BrainFuck

    BrainFuck es un lenguaje de programacion esoterico , vamos a necesitar buscar un codificador online para escribir en ese lenguaje y ver si nos lo interpreta

    Mediante esta pagina web nos permite escribir codigo en python y pasarlo a Brainfuck

    Si copiamos el codigo resultante y lo ejecutamos nos deberia devolver "hola"

    Por lo que como vemos que nos ejecuta perfectamente el codigo , vamos a realizar un intento de una shell reversa mediante python hacia nuestro equipo de atacante

    Nos ponemos a la escucha mediante el puerto 443 y nos debe devolver una shell reversa

    Una vez ya tenemos una shell , ya podriamos visualizar el flag del usuario

    ## Escalada de Privilegios:

    Ahora tenemos que escalar privilegios , tenemos que ir buscando permisos SUID , en este caso vamos a buscar Capabilities , es similar a la explotacion de archivos SUID

    getcap -r / 2>/dev/null

    Tenemos una potencial del servicio OpenSSL

    Vamos a crear un fichero llamado root en C , el cual nos va a permitir ejecutar una shell con permisos de Root

    Ahora vamos a proceder a compilar ese fichero

    sudo gcc -fPIC -w -o root.o -c root.c gcc -shared -o root.so -lcrypto root.o

    Ahora vamos a compartirnos un servidor mediante Python y vamos a descargar el fichero ejecutable en la maquina victima

    openssl engine -t `pwd` /root.so

    Y ya tendriamos permisos de Root y podremos visualizar el flag

    Ya tendriamos la maquina MindGames con una dificultadad Media Explotada!